<?php

namespace qrcode;

use Endroid\QrCode\QrCode;
use think\facade\Config;

class QrcodeUpload {

    /**
     * 生成图片二维码
     * @param $url
     * @param $localPath
     * @param $fileName
     * @return string
     * @throws \Endroid\QrCode\Exceptions\ImageTypeInvalidException
     */
    public static function generateQrCode($url, $localPath, $fileName) {
            $qrCode = new QrCode();
            $qrCode->setText($url)
                   ->setSize(Config::get("qrcode.qrcode_img_param")['size'])
                   ->setPadding(Config::get("qrcode.qrcode_img_param")['padding'])
                ->setErrorCorrection(Config::get("qrcode.qrcode_img_param")['ErrorCorrection'])
                ->setForegroundColor(['r' => Config::get("qrcode.qrcode_img_param")['ForegroundColor'],
                    'g' => Config::get("qrcode.qrcode_img_param")['ForegroundColor'],
                    'b' => Config::get("qrcode.qrcode_img_param")['ForegroundColor'],
                    'a' => Config::get("qrcode.qrcode_img_param")['ForegroundColor']])
                ->setBackgroundColor(['r' => Config::get("qrcode.qrcode_img_param")['BackgroundColor'],
                    'g' => Config::get("qrcode.qrcode_img_param")['BackgroundColor'],
                    'b' => Config::get("qrcode.qrcode_img_param")['BackgroundColor'],
                    'a' => Config::get("qrcode.qrcode_img_param")['BackgroundColorEnd']])
                ->setImageType(QrCode::IMAGE_TYPE_PNG);

            $qrCode->save($localPath.$fileName.'.'.QrCode::IMAGE_TYPE_PNG);

            return $localPath.$fileName.'.'.QrCode::IMAGE_TYPE_PNG;
    }


}